In Kotlin, object declarations and object expressions are the designed way to implement the singleton pattern. Because this is a built-in language
feature, it should be used as an idiom instead of resorting to custom idioms.
An alternative is to declare private constructors and to provide a single class instance within a companion object. However, this idiom is adopted
from other languages like Java which do not feature the direct declaration of objects. It should not be used in Kotlin.
What is the potential impact?
Readability and Understanding
This change makes it easier to understand the code because this is how singletons are intended to be used in Kotlin. When developers share common
standards and idioms, they need to spend less effort on understanding each other’s code.
Code Redundancy
Using a built-in language feature or a standard API is always better than a custom implementation, because the reimplementation of something that
already exists is unnecessary.